package com.yanqu.road.entity.activity.shuihuyezipai;

import com.yanqu.road.entity.DataObject;
import com.yanqu.road.entity.FieldTypeAnnotation;
import com.yanqu.road.entity.DataStatus;

import java.util.HashMap;
import java.util.Map;

/**
 * @Description 水浒椰子牌 玩家数据
 * @Author cwq
 * @Data 2021/11/30 18:05
 */
@FieldTypeAnnotation(tableName = "t_u_activity_shuihuyezicard_user_data")
public class ShuiHuYeZiCardUserData extends DataObject {
    @FieldTypeAnnotation(desc = "活动ID", select = true, update = true)
    private int activityId;
    @FieldTypeAnnotation(desc = "用户ID", select = true, update = true)
    private long userId;
    @FieldTypeAnnotation(desc = "卡牌积分")
    private int integral;
    @FieldTypeAnnotation(desc = "段位积分")
    private int rankScore;
    @FieldTypeAnnotation(desc = "pve连胜次数")
    private int pveWinningStreakNum;
    @FieldTypeAnnotation(desc = "pvp连胜次数")
    private int pvpWinningStreakNum;
    @FieldTypeAnnotation(desc = "每日参与房间的刷新时间 ")
    private int refreshTime;
    @FieldTypeAnnotation(desc = "使用连抽的次数 ")
    private int contGetCardTimes;
    @FieldTypeAnnotation(desc = "活动中获取斗牌请帖的数量 ")
    private long getPropNum;
    @FieldTypeAnnotation(desc = "房间参与次数")
    private Map<Integer,Integer> joinRoomTimesMap = new HashMap<>();
    @FieldTypeAnnotation(desc = "已拥有牌的数据")
    private Map<Integer,ShuiHuYeZiCardUserCard> cardMap = new HashMap<>();
    @FieldTypeAnnotation(desc = "每个段位的胜负情况")
    private Map<Integer,ShuiHuYeZiCardWinOrLoseInfo> levelWinLoseMap = new HashMap<>();
    @FieldTypeAnnotation(desc = "每个AI的胜胜负情况 K:0,1,2 npc模式用")
    private Map<Integer,ShuiHuYeZiCardWinOrLoseInfo> aiWinLoseMap = new HashMap<>();
    @FieldTypeAnnotation(desc = "记录每个房间的胜率 ")
    private Map<Integer,ShuiHuYeZiCardWinOrLoseInfo> roomWinLoseMap = new HashMap<>();

    public int getActivityId() {
        return activityId;
    }
    public void setActivityId(int activityId) {
        if (this.activityId != activityId) {
            this.activityId = activityId;
            setOp(DataStatus.Update);
        }
    }

    public long getUserId() {
        return userId;
    }
    public void setUserId(long userId) {
        if (this.userId != userId) {
            this.userId = userId;
            setOp(DataStatus.Update);
        }
    }

    public int getIntegral() {
        return integral;
    }
    public void setIntegral(int integral) {
        if (this.integral != integral) {
            this.integral = integral;
            setOp(DataStatus.Update);
        }
    }

    public int getRankScore() {
        return rankScore;
    }
    public void setRankScore(int rankScore) {
        if (this.rankScore != rankScore) {
            this.rankScore = rankScore;
            setOp(DataStatus.Update);
        }
    }

    public int getPveWinningStreakNum() {
        return pveWinningStreakNum;
    }
    public void setPveWinningStreakNum(int pveWinningStreakNum) {
        if (this.pveWinningStreakNum != pveWinningStreakNum) {
            this.pveWinningStreakNum = pveWinningStreakNum;
            setOp(DataStatus.Update);
        }
    }

    public int getPvpWinningStreakNum() {
        return pvpWinningStreakNum;
    }
    public void setPvpWinningStreakNum(int pvpWinningStreakNum) {
        if (this.pvpWinningStreakNum != pvpWinningStreakNum) {
            this.pvpWinningStreakNum = pvpWinningStreakNum;
            setOp(DataStatus.Update);
        }
    }

    public int getRefreshTime() {
        return refreshTime;
    }
    public void setRefreshTime(int refreshTime) {
        if (this.refreshTime != refreshTime) {
            this.refreshTime = refreshTime;
            setOp(DataStatus.Update);
        }
    }

    public int getContGetCardTimes() {
        return contGetCardTimes;
    }

    public void setContGetCardTimes(int contGetCardTimes) {
        if (this.contGetCardTimes != contGetCardTimes) {
            this.contGetCardTimes = contGetCardTimes;
            setOp(DataStatus.Update);
        }
    }

    public long getGetPropNum() {
        return getPropNum;
    }

    public void setGetPropNum(long getPropNum) {
        if (this.getPropNum != getPropNum) {
            this.getPropNum = getPropNum;
            setOp(DataStatus.Update);
        }
    }

    public Map<Integer, Integer> getJoinRoomTimesMap() {
        return joinRoomTimesMap;
    }
    public void setJoinRoomTimesMap(Map<Integer, Integer> joinRoomTimesMap) {
        if (null == joinRoomTimesMap){
            return;
        }
        if (this.joinRoomTimesMap == null || !this.joinRoomTimesMap.equals(joinRoomTimesMap)) {
            this.joinRoomTimesMap = joinRoomTimesMap;
            setOp(DataStatus.Update);
        }
    }

    public Map<Integer, ShuiHuYeZiCardUserCard> getCardMap() {
        return cardMap;
    }
    public void setCardMap(Map<Integer, ShuiHuYeZiCardUserCard> cardMap) {
        if (null == cardMap){
            return;
        }
        if (this.cardMap == null || !this.cardMap.equals(cardMap)) {
            this.cardMap = cardMap;
            setOp(DataStatus.Update);
        }
    }

    public Map<Integer, ShuiHuYeZiCardWinOrLoseInfo> getLevelWinLoseMap() {
        return levelWinLoseMap;
    }
    public void setLevelWinLoseMap(Map<Integer, ShuiHuYeZiCardWinOrLoseInfo> levelWinLoseMap) {
        if (null == levelWinLoseMap){
            return;
        }
        if (this.levelWinLoseMap == null || !this.levelWinLoseMap.equals(levelWinLoseMap)) {
            this.levelWinLoseMap = levelWinLoseMap;
            setOp(DataStatus.Update);
        }
    }

    public Map<Integer, ShuiHuYeZiCardWinOrLoseInfo> getAiWinLoseMap() {
        return aiWinLoseMap;
    }
    public void setAiWinLoseMap(Map<Integer, ShuiHuYeZiCardWinOrLoseInfo> aiWinLoseMap) {
        if (null == aiWinLoseMap){
            return;
        }
        if (this.aiWinLoseMap == null || !this.aiWinLoseMap.equals(aiWinLoseMap)) {
            this.aiWinLoseMap = aiWinLoseMap;
            setOp(DataStatus.Update);
        }
    }

    public Map<Integer, ShuiHuYeZiCardWinOrLoseInfo> getRoomWinLoseMap() {
        return roomWinLoseMap;
    }
    public void setRoomWinLoseMap(Map<Integer, ShuiHuYeZiCardWinOrLoseInfo> roomWinLoseMap) {
        if (null == roomWinLoseMap){
            return;
        }
        if (this.roomWinLoseMap == null || !this.roomWinLoseMap.equals(roomWinLoseMap)) {
            this.roomWinLoseMap = roomWinLoseMap;
            setOp(DataStatus.Update);
        }
    }

}
